home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Prog / M / LSC213.cpt / DeviceMgr.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-11-09  |  2.6 KB  |  157 lines  |  [TEXT/KAHL]

  1.  
  2. /*
  3.  *  DeviceMgr.h
  4.  *
  5.  *  Copyright (c) 1986, 1987 THINK Technologies, Inc.
  6.  *  These interfaces are based on information copyrighted
  7.  *  by Apple Computer, Inc., 1985, 1986, 1987.
  8.  *
  9.  */
  10.  
  11. #ifndef _DeviceMgr_
  12. #define _DeviceMgr_
  13.     
  14. #ifndef    _MacTypes_
  15. #include "MacTypes.h"
  16. #endif
  17.  
  18. #ifndef _OSUtil_
  19. #include "OSUtil.h"
  20. #endif
  21.  
  22.  
  23. /*  parameter block for Control/Status calls  */
  24. typedef struct
  25.     {
  26.     QElemPtr    qLink;
  27.     int            qType;
  28.     int            ioTrap;
  29.     Ptr            ioCmdAddr;
  30.     ProcPtr        ioCompletion;
  31.     OsErr        ioResult;
  32.     StringPtr    ioNamePtr;
  33.     int            ioVRefNum;
  34.     int            ioRefNum;
  35.     int            csCode;
  36.     int            csParam[11];
  37.     } cntrlParam, CntrlParam;
  38. #define ioCRefNum    ioRefNum
  39.  
  40. /*  csCode  */
  41. enum {
  42.     goodBye = -1,
  43.     killCode = 1,
  44.     accEvent = 64,
  45.     accRun,
  46.     accCursor,
  47.     accMenu,
  48.     accUndo,
  49.     accCut = 70,
  50.     accCopy,
  51.     accPaste,
  52.     accClear
  53. };
  54.  
  55.  
  56. /*  device control entry  */
  57. typedef    struct    DCtlEntry
  58.     {
  59.     Ptr                dCtlDriver;
  60.     int                dCtlFlags;
  61.     QHdr            dCtlQHdr;
  62.     long            dCtlPosition;
  63.     Handle            dCtlStorage;
  64.     int                dCtlRefNum;
  65.     long            dCtlCurTicks;
  66.     struct GrafPort    *dCtlWindow;
  67.     int                dCtlDelay;
  68.     int                dCtlEMask;
  69.     int                dCtlMenu;
  70.     } DCtlEntry ;
  71. typedef DCtlEntry *    DCtlPtr;
  72. typedef    DCtlPtr *    DCtlHandle;
  73.  
  74. /*  dCtlFlags bits  */
  75. #define    dNeedLock        0x4000
  76. #define dNeedTime        0x2000
  77. #define dNeedGoodBye    0x1000
  78. #define dStatEnable        0x0800
  79. #define dCtlEnable        0x0400
  80. #define dWritEnable        0x0200
  81. #define dReadEnable        0x0100
  82. #define drvrActive        0x0080
  83. #define dRAMBased        0x0040
  84. #define dOpened            0x0020
  85.  
  86. /*  traps  */
  87. #define aRdCmd            2
  88. #define aWrCmd            3
  89. #define asyncTrpBit        0x0400
  90. #define noQueueBit        0x0200
  91.  
  92. /*  result codes  */
  93. enum {
  94.     dceExtErr = -30,
  95.     unitTblFullErr,
  96.     notOpenErr,
  97.     abortErr,
  98.     dInstErr,
  99.     dRemovErr,
  100.     closeErr,
  101.     openErr,
  102.     unitEmptyErr,
  103.     badUnitErr,
  104.     writErr,
  105.     readErr,
  106.     statusErr,
  107.     controlErr
  108. };
  109.  
  110. /*  chooser interface  */
  111. enum {
  112.     chooserID = 1,        /*  caller value for chooser  */
  113.     newSelMsg = 12,        /*  message values  */
  114.     fillListMsg,
  115.     getSelMsg,
  116.     selectMsg,
  117.     deselectMsg,
  118.     terminateMsg,
  119.     buttonMsg = 19
  120. };
  121.  
  122. /*  cdev message types  */
  123. enum {
  124.     initDev,
  125.     hitDev,
  126.     closeDev,
  127.     nulDev,
  128.     updateDev,
  129.     activDev,
  130.     deactivDev,
  131.     keyEvtDev,
  132.     macDev
  133. };
  134.  
  135. /*  cdev error codes  */
  136. #define cdevGenErr        (-1)
  137. #define cdevMemErr        0
  138. #define cdevResErr        1
  139. #define cdevUnset        3
  140.  
  141.  
  142. /*  functions returning non-integral values  */
  143. pascal DCtlHandle GetDCtlEntry();
  144.  
  145. /*  low-memory globals  */
  146. extern DCtlHandle *UTableBase : 0x11C;
  147. extern ProcPtr Lvl1DT[] : 0x192;
  148. extern ProcPtr Lvl2DT[] : 0x1B2;
  149. extern int UnitNtryCnt : 0x1D2;
  150. extern Ptr VIA : 0x1D4;
  151. extern Ptr SCCRd : 0x1D8;
  152. extern Ptr SCCWr : 0x1DC;
  153. extern Ptr IWM : 0x1E0;
  154. extern ProcPtr ExtStsDT[] : 0x2BE;
  155.  
  156.  
  157. #endif _DeviceMgr_